<?php
/**
 * 自定义二叉树接口
 */

namespace Xxb\XxbPhpAlgo\Contract;

interface XxbBinaryTreeInterface
{
    // 是否为空树
    public function isEmpty();

    // 树中有几个结点
    public function getSize();

    // 新增结点
    public function add($value);

    // 删除值是value的结点
    public function shift($value);

    // 前序遍历
    public function previousTraversal();

    // 中序遍历
    public function middleTraversal();

    // 后序遍历
    public function afterTraversal();

    // 层级遍历
    public function hierarchicalTraversal();

    // 搜索值是value的结点
    public function search($value);

    // 搜索值是value的结点的父结点
    public function searchParent($value);
}
